/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controleur;

import hebergement.LieuHebergement;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author tommy
 */
public class TableModelH extends AbstractTableModel {


    public boolean modif=false;
    public boolean ajout=false;
    public boolean suppr=false;

    public static ArrayList<LieuHebergement> listeCourante;
    public static ArrayList<LieuHebergement> listeModifiee;
    public static ArrayList<LieuHebergement> listeSupprimee;
    public static ArrayList<LieuHebergement> listeAjoutee;
    public ArrayList<String> colonnes;


    public TableModelH(){


        listeCourante = new ArrayList();
        listeModifiee = new ArrayList();
        listeSupprimee = new ArrayList();
        listeAjoutee = new ArrayList();
        colonnes = new ArrayList();

        colonnes.add("ID");
        colonnes.add("type");
        colonnes.add("Nom");
        colonnes.add("nbetoile");
        colonnes.add("nb place");
        colonnes.add("affecté");
        colonnes.add("jury");
        this.fireTableDataChanged();

    }

    @Override
    public int getColumnCount(){
        return(colonnes.size());
    }

    @Override
    public int getRowCount(){

        return(listeCourante.size());
    }

    @Override
    public String getColumnName(int col){
        return(colonnes.get(col));
    }

    @Override
    public Object getValueAt(int row, int col){
        return listeCourante.get(row).getGetter(col);

    }

    @Override
    public void setValueAt(Object value, int row, int col){
        this.modif=true;
        listeCourante.get(row).setSetter(value, col);
        listeModifiee.add(listeCourante.get(row));
        System.out.println("MODIFIE:"+listeModifiee.get(listeModifiee.size()-1).toString()+" :"+value.toString());
        this.fireTableDataChanged();
    }

    @Override
    public boolean isCellEditable(int row, int col) {
        if(col != 0){
        return true;
        }else return false;

    }

    public void supprimerLigne(int i) {
        this.suppr=true;
        LieuHebergement e = listeCourante.remove(i);
        listeSupprimee.add(e);
        System.out.println("SUPPRIMEE: "+e.toString());

    }


    public void addIt(LieuHebergement e){
        this.ajout=true;
        listeCourante.add(e);
        listeAjoutee.add(e);
        System.out.println("AJOUTE:"+listeAjoutee.get(listeAjoutee.size()-1).toString());
    }
    public void initModel(LieuHebergement e){
        listeCourante.add(e);
        System.out.println("Added: "+e.toString());
    }

    public boolean isAjout() {
        return ajout;
    }

    public boolean isModif() {
        return modif;
    }

    public boolean isSuppr() {
        return suppr;
    }

}

